[2017_HackCon] [REV] keygen¶
문제내용¶
This proprietary software asks for a key, can you find what it is? To get the flag send your key to
defcon.org.in:8082
eg: echo 'your_key' | nc defcon.org.in 8082
문제 풀이¶
제공해준 파일을 IDA hexray decompiler를 통해 확인해보니 다음과 같았다.
int __cdecl main(int argc, const char **argv, const char **envp)
{
char *s2; // ST10_8@1
unsigned __int8 *v4; // ST18_8@1
int v5; // edx@1
int v6; // edx@1
size_t v7; // rdx@1
s2 = (char *)malloc(0x3E8uLL);
scanf("%s", s2);
v4 = (unsigned __int8 *)malloc(0x3E8uLL);
v5 = strlen("firhfgferfibbqlkdfhh");
HexToBin(s2, v4, v5);
v6 = strlen("firhfgferfibbqlkdfhh");
rot13(v4, s2, v6);
v7 = strlen("firhfgferfibbqlkdfhh");
if ( !strncmp("firhfgferfibbqlkdfhh", s2, v7) )
puts("Match");
else
puts("Nope");
return 0;
}
입력한 값에 HexToBin과 rot13을 한 값이 "firhfgferfibbqlkdfhh"과 일치하면 Match를 출력한다. "firhfgferfibbqlkdfhh"를 rot13을 한 후 BinToHex를 하면 값이 다음과 같다.
"73766575737473726573766f6f64797871737575"
해당 값을 보내고 nc로 응답을 기다리면 플래그를 획득할 수 있다.
$ (python -c 'print "73766575737473726573766f6f64797871737575"'|cat -)|nc defcon.org.in 8082